#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import "Location.h"
#import "AddressAnnotation.h"
#import "CustomPin.h"
#import "BuildingDataUtility.h"
#import "FileUtilities.h"
#import "BuildingCollection.h"
#import "MapBuildingSearchDelegate.h"
#import "SFUEventSearchEngine.h"
#import "GPSLocation.h"
#import "MapSearchUtility.h"
#import "SFUEvent.h"
#import "EventSearchView.h"
#import "MapSearchListViewer.h"
#import "SFUConstants.h"

#define ZERO 0

/**
 * This class represents the main view of the application. 
 *
 * It is responsible for displaying the map view and all its elements. Such elements 
 * include: annotations, callout bubbles, and the users current location.
 *
 * Event and Building search events are handled within this class.
 * 
 * @author      Justin Hollander
 * @version     0.9.5
 * @since       0.1.0
 * @see         MapBuildingSearchDelegate
 * @see         SFUEventSearchResponseDelegate
 */
@interface MapViewController : UIViewController<MKMapViewDelegate,
												  MapBuildingSearchDelegate, 
												  UITabBarDelegate, 
												  SFUEventSearchResponseDelegate, 
												  UIAccelerometerDelegate> {
	
	MKMapView*         mapView;          // View Controller for map view
	UITabBar*          mapTabBar;        // Tab Bar for view controller
	UITabBarItem*      searchItem;       // Used for building/event search
	UITabBarItem*      bookmarksItem;    // Used for viewing bookmarked events
	AddressAnnotation* addAnnotation;    // Contains annotation pin for the map
	BOOL               isBuildingSearch; // Flag for making callout bubble button visible

}

@property (nonatomic, retain) MKMapView* mapView;
@property (nonatomic, retain) UITabBar* mapTabBar;
@property (nonatomic, retain) UITabBarItem* searchItem;
@property (nonatomic, retain) UITabBarItem* settingsItem;
@property (nonatomic, retain) UITabBarItem* bookmarksItem;
@property (nonatomic)         BOOL isBuildingSearch;

@end
